<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>

</html>

<script>

  // document.write('<h1>YO~</h1>'); // 作用：将 字符串，视为 普通 html代码进行解析。

  /* 英文：
    parse: 解析
    Int：  整数
    float：小数（浮点数）

  */

  /* 字符串 转 数字：
    方法1：Number(字符串数字)
      作用：将 字符串数字，转成 真正的数字。
        注：若 Number(非字符串数字)，则返回值是 `NaN`。


    方法2：Number.parseInt(字符串数字);
      作用：将 字符串数字，解析为 数字整数。
        注：其解析数字的规则： 自左向右进行数字的解析，直到 不能解析为止。

      案例1： Number.parseInt('123.123'); // 123
      案例2：Number.parseInt('12asdfsad3.123sdfsdf'); // 12


    方法3：Number.parseFloat(字符串数字);
      作用：将 字符串数字，解析为 数字小数/浮点数。
        注：其解析数字的规则： 自左向右进行数字的解析，直到 不能解析为止。

      案例：Number.parseFloat('123.123sdfsdf');  // 123.123


    方法4：`+字符串数字`
      // 注： 下述的 `+`，其含义，现在是 `正号`。
      console.log(+'123'); // 123
      console.log(+'123.123'); // 123.123
    
      // 注： 下述的 `-`，其含义，现在是 `负号`。
      console.log(-'123'); // -123
      console.log(-'123.123'); // -123.123
  */


  /* 数字转字符串：
    方法1：数字变量.toFixed(数字); 
      作用: 数字，表示 保留小数点后 几位
      案例：
        var num = 123.123;
        num.toFixed(); // 返回值是 '123'
        num.toFixed(3); // 返回值是 '123.123'
        num.toFixed(4); // 返回值是 '123.1230'

    方法2：String(数字/其他数据类型)
      console.log(String(123.123)); // '123.123'
      console.log(String(true)); // 'true'

    方法3：
      用法1：其他数据类型的变量.toString();
        注： null / undefined 没有 toString(); 
      案例：
        var num = 123.123;
        console.log(num.toString()); // '123.123'
        var bol = false;
        console.log(bol.toString()); // 'false'

      用法2：数字变量.toString(进制)
      案例：
        var num = 255;
        console.log(num.toString(16)); // 将十进制，转成16进制的字符串： 'ff' 
        console.log(num.toString(2)); // 将十进制，转成2进制的 字符串： '11111111'
    
    方法4：表达式 + 表达式;
      注： `+` 左右两侧，只要 一个表达式是 字符串，则 整体表达式是 字符串拼接。
  */


  /* 其他数据类型 转 布尔值
    方法1：Boolean(其他数据类型)
      规律总结： `其他数据类型` 只要 数据 是： 0 / '' / NaN / undefined / null
        只要是 上述五种数据，都会被转成 false，剩下的 都会被转成 true。
      案例：
        console.log(Boolean(0)); // false
        console.log(Boolean('')); // false
        console.log(Boolean(NaN)); // false
        console.log(Boolean(undefined)); // false
        console.log(Boolean(null)); // false
  
  
    方法2：`!!表达式`
      原理/机制： 若表达式的返回值是  0 / '' / NaN / undefined / null
        则 整体表达式的 返回值是 false。
          剩下的，都是 返回值是 true。

    案例：
      console.log(!!0); // false
      
      !!0 步骤拆解：
        第一步：  `!0`  -> true
        第二步：  `!true`  ->  false
  */

  console.log(!0); // 执行该表达式，会先 动态地 将 `0`，隐式转成为 false
  // 即 `!0` 是 `!false`， 所以 最终的返回值是 `true`




</script>